From: Jonas Dreßler Date: Sun, 8 Dec 2019 20:56:46 +0000 (+0100) Subject: shellEntry: Show popup menu at cursor position when pressing menu key X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~781^2^2~202 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=d27638e37e17435709840e0927616d335b0bdb59;p=gnome-shell.git shellEntry: Show popup menu at cursor position when pressing menu key When pressing the menu key to show the popupMenu inside a ShellEntry, the menu is currently aligned with the end of the entered text, this causes a bug in case the text is overflowing the width of the entry: The menu will be shown outside of the entry field, because it's aligned with the (invisible) end of the text. Fix that by simply aligning the popup menu with the cursor of the entry, which is a behavior that makes sense when pressing the menu-key anyway. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/934 --- diff --git a/js/ui/shellEntry.js b/js/ui/shellEntry.js index 884efc6b5..c6e35fa83 100644 --- a/js/ui/shellEntry.js +++ b/js/ui/shellEntry.js @@ -116,7 +116,8 @@ function _onButtonPressEvent(actor, event, entry) { } function _onPopup(actor, entry) { - let [success, textX, textY_, lineHeight_] = entry.clutter_text.position_to_coords(-1); + let cursorPosition = entry.clutter_text.get_cursor_position(); + let [success, textX, textY_, lineHeight_] = entry.clutter_text.position_to_coords(cursorPosition); if (success) entry.menu.setSourceAlignment(textX / entry.width); entry.menu.open(BoxPointer.PopupAnimation.FULL);